In modern processors, a number of different execution units are used to process and execute a variety of code and instructions. Not all instructions are created equal as some are quicker while others can take a number of clock cycles to complete. Generally, the faster the throughput of instructions, the better the overall performance of the processor. Thus it would be advantageous to have as many instructions execute as fast as possible. However, there are certain instructions that have greater complexity and require more in terms of execution time and processor resources. For example, floating point instructions, load/store operations, data moves, data compression and decompression, graph traversal, etc.
Compression and decompression operations conventionally take significant time identifying an appropriate compression symbol. In modern processors, searching via graph traversal is an algorithm used in a variety of fields, including social networks, business analytics, and high-performance computing. However, the ability to scale out the graph traversal to very large systems is severely limited due to the delay incurred by the processor during inter-node communications. In some systems, compression and decompression symbol identification may help reduce this communication and improve the execution time of graph traversal. Therefore, improving the execution time of complex instructions, including compression and decompression, could improve overall processor timing and throughput.
Therefore, there is a need in the art to more efficiently manage complex instructions, including graph traversal.